package Vista;

import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;


import Controlador.Controlador;
import Modelo.Juego;

public class MenuJuegoNuevo implements ActionListener{


	private JFrame unFrame;
	private JPanel unPanel;
	
	private JFrame llamador;
	
	
	public MenuJuegoNuevo(boolean visible){
		
		armarPanel();
		incializarFrame();
		this.unFrame.setVisible(visible);
	}
	
	public boolean esVisible(){
		return this.unFrame.isVisible();
		
	}
	public void setVisible(boolean b){
		this.unFrame.setVisible(b);	
	}

	private void armarPanel() {
		this.unPanel = new JPanel(new GridLayout(4,1));
		//Label
		JLabel ingreseNombre = new JLabel(" Al finalizar un nivel,\n " +
											"la partida se salva");
		// botones
		
		JLabel Comentario = new JLabel("Comenzara desde el nivel 1 ");
		
		JButton botonSalir = new JButton("Volver");
		
		JButton botonAceptar = new JButton("Aceptar");
		botonSalir.addActionListener(this);
		botonAceptar.addActionListener(this);
		// agrego los compones
		
		this.unPanel.add(Comentario);
		this.unPanel.add(botonAceptar);
		this.unPanel.add(botonSalir);
		this.unPanel.add(ingreseNombre);
	}


	private void incializarFrame() {
		Dimension pantallaResolucion = Toolkit.getDefaultToolkit().getScreenSize();
		this.unFrame = new JFrame();
		unFrame.setSize(275, 275);
		int x =
(int)Math.round(pantallaResolucion.getWidth()/2)-(int)Math.round(unFrame.getSize
().getWidth()/2);
		int y =
(int)Math.round(pantallaResolucion.getHeight()/2)-(int)Math.round(unFrame.getSize().getHeight()/2);
		unFrame.setLocation(x, y);
		this.unFrame.setContentPane(unPanel);
		this.unFrame.addWindowListener(new MonitorVentanaBasica());
		this.unFrame.setVisible(true);
		this.unFrame.setTitle("Nuevo Juego");
		this.unFrame.setResizable(false);
		this.unFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
		
	public void actionPerformed(ActionEvent e) {
		if (e.getActionCommand()=="Aceptar")
			this.cargarJuegoNuevo();
		if (e.getActionCommand()=="Volver"){
			this.unFrame.setVisible(false);
			this.llamador.setVisible(true);
		}
			
	}
	
	private void cargarJuegoNuevo() {
		
		this.unFrame.setVisible(false);
		Juego juego = new Juego("niveles/listaniveles.xml");
		PantallaJuego vista =new PantallaJuego(juego); 
		
		Controlador unControladorAuto = new Controlador(juego,vista); 
		
		vista.setControlador(unControladorAuto);
		
	}
	
	public void llamador(JFrame unLlamador){
		this.llamador = unLlamador; 
	}

}
